package com.face.attendance.controller;

import com.face.base.config.Result;
import com.face.base.pojo.UserAttendance;
import com.face.base.service.UserService;
import com.face.base.utils.BaiduAiUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;

@RestController
public class FaceAttendanceController {

    /**
     * 基于 百度AI SDK 的人脸识别。
     */
    @Autowired
    private BaiduAiUtil baiduAiUtil;
    /**
     * 用户服务。
     */
    @Autowired
    private UserService userService;

    /**
     * 人脸考勤。【未解决并发问题。】
     *
     * @param imgData：人脸信息。
     * @return 考勤结果。
     */
    @PostMapping("/faceAttendance")
    Result<String> faceAttendance(@RequestParam("userFace") String imgData) {

        // 没有判断数据库是否开启。
        String user_id = baiduAiUtil.faceSearch(imgData.substring(22));
        System.out.println("result = " + user_id);
//        userService.test();
//        return new Result<>(0, user_id);
        if (user_id != null) {
            // 存在当前用户编号，则插入一条签到时间。
            if (userService.isUser(user_id) && userService.attendance(new UserAttendance(user_id, new Date()))) {
                return new Result<>(200, userService.getUserName(user_id) + " 打卡成功");
            }
        } else if ("SUCCESS".equalsIgnoreCase(BaiduAiUtil.faceMsg)) {
            return new Result<>(0, "您还不是本公司员工");
        }
        return new Result<>(0, BaiduAiUtil.faceMsg);
    }

        @GetMapping("/test")
    public void test(){
        System.out.println("FaceAttendanceController 执行了 baiduAiUtil ............");
        baiduAiUtil.test();
    }
}
